home *** CD-ROM | disk | FTP | other *** search
- /* este script descompone un fichero .TAP en sus correspondientes .header */
- /* y .bytes colocandolos en el directorio que le digamos */
-
- /* comprobamos si el emulador está presente */
- address command
-
- if ~show(ports,ZXAM_REXX) then do
- requestchoice '>nil: title "ZXAM Script error..." body "No encuentro el puerto del emulador!!" gadgets "AARGH!"'
- exit
- end
-
- /* antiguos parametros de la ventana */
- oldname=zxamactname()
- oldformat=zxamactformat()
- oldsaveformat=zxamactsaveformat()
-
- /* pedimos los ficheros a convertir */
- 'requestfile >t:zxamexplodetap.tmp "'zxamactloadpath()'" title "Elige fichero .TAP a descomponer..." pattern "#?.TAP"'
- name=zxampploadfile('t:zxamexplodetap.tmp')
- name=left(name,length(name)-1) /* eliminamos el LF */
- /* ahora name contiene nombre+path */
-
- /* pedimos el directorio destino */
- 'requestfile >t:zxamexplodetap.tmp "'zxamactsavepath()'" drawersonly savemode'
- destdrawer=zxampploadfile('t:zxamexplodetap.tmp')
- destdrawer=strip(left(destdrawer,length(destdrawer)-1),'B','"') /* eliminamos el LF y las comillas */
-
- if name='' then exit
-
- ZXAMEnableAbort() /* activa gadget Abort ARexx */
-
- name=strip(left(name,pos('"',name,2)),'B','"') /* eliminamos comillas */
-
- /* ahora le quitamos la extensión al nombre */
- namenoext=zxamfilepart(name)
- if lastpos('.',namenoext)~=0 then namenoext=left(namenoext,lastpos('.',namenoext)-1)
-
- /* abrimos el fichero */
- if ~open('fichero',name,'R') then signal cleanup
-
-
- counter=0
-
- zxamnameformat('Procesando "'zxamfilepart(name)'"','Espera...')
-
- /* descomponemos el fichero */
- do forever
-
- if ZXAMReadAbort() then signal cleanup2
-
- /* procesamos el fichero */
-
- dummy=readch('fichero',2) /* leemos dos bytes */
- if dummy='' then signal cleanup2
-
- longblock=c2d(reverse(dummy)) /* fomato invertido Z80 */
-
- block=readch('fichero',longblock) /* leemos el bloque de datos */
-
- defext='.bytes'
-
- if ((longblock=19)&(left(block,1)='00'x)) then defext='.header'
-
- /* pues tenemos que hacer el save */
-
- newname=namenoext''counter''defext
-
- if ~open('fichero2',zxamjoinpathname(destdrawer,newname),'W') then signal cleanup2
-
- dummy=writech('fichero2',block)
-
- dummy=close('fichero2')
-
- if ~((longblock=19)&(left(block,1)='00'x)) then counter=counter+1
-
- end
-
-
- cleanup2:
- dummy=close('fichero')
-
- cleanup:
- if oldname='' then
- zxamclearnameformat()
- else
- zxamnameformat(oldname,oldformat)
-
- zxamsaveformat(oldsaveformat)
-
- exit
-